#include <stdio.h> 
int main () {
    int a[3];
    int b[3][2];
    /*
        该数组在内存中的排列方式为
        a[0][0]
        a[0][1]
        a[1][0]
        a[1][1]
        a[2][0]
        a[2][1]
        
    
    */

    //  a 和 &a两个地址相同
    printf(" a= %#x \n", a);
    printf(" &a = %#x \n", &a);

    // b 和 b[0] 两个地址相同
    printf(" b = %#x \n", b);
    printf(" b[0] = %#x \n", b[0]);

    printf("--------------------\n");

    printf(" a + 1 = %#x \n", a + 1); // 移动一个元素
    printf(" &a + 1 = %#x \n", &a + 1); // 移动三个元素 ， 每个元素占4byte， 总共12 byte

    printf(" b + 1 = %#x \n", b + 1); // 移动两个元素 共8byte
    printf(" b[0] + 1 = %#x \n", b[0] + 1); // 移动1个元素
    printf(" &b + 1 = %#x \n", &b + 1); // 移动6个元素 共24 byte

    /*
    总结：
      a: int  * 


    */
    return 0;
}